#pragma once
#include "../../SGD Wrappers/SGD_Geometry.h"

class Camera
{
private:
	bool bIsFollowing;				// Is camera following player?
	SGD::Point position;
	SGD::Point destination;
	float fSpeed;					// Moves fSpeed pixels/sec toward destination Point.
	float fMaxSpeed;

	Camera() = default;
	~Camera() = default;

	Camera(const Camera&) = delete;
	Camera& operator=(const Camera&) = delete;
public:
	static Camera* GetInstance();

	bool GetFollowing();
	SGD::Point GetPosition();
	SGD::Point GetDestination();
	float GetSpeed();
	float GetMaxSpeed();

	void SetFollowing(bool follow);
	void SetPosition(SGD::Point point);
	void SetDestination(SGD::Point point);
	void SetSpeed(float speed);
	void SetMaxSpeed(float speed);

	int Update(float dt);
};